package istar.impl;

import istar.IElement;
import istar.IElementLink;

public class EvaluationLink extends AbstractElementLink implements IElementLink {
	
	private String name;
	private int evaluation;
	private Belief owner;
	//private MeansEndLink targetLink;
	private IElement targetGoal;
	
	public EvaluationLink(String name, int evaluation, Belief owner,
			IElement targetGoal) {
		super(name);
		this.evaluation = evaluation;
		this.owner = owner;
		this.targetGoal = targetGoal;
		owner.setEvaluationLink(this);
	}

	public EvaluationLink(String name) {
		super(name);
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getEvaluation() {
		return evaluation;
	}

	public void setEvaluation(int evaluation) {
		this.evaluation = evaluation;
	}

	public Belief getOwner() {
		return owner;
	}

	public void setOwner(Belief owner) {
		this.owner = owner;
	}

	/*
	public MeansEndLink getTargetLink() {
		return targetLink;
	}

	
	
	public void setTargetLink(MeansEndLink targetLink) {
		this.targetLink = targetLink;
	}

	 */
	
	
	
	@Override
	public Object clone() throws CloneNotSupportedException {
		// TODO Auto-generated method stub
		EvaluationLink newClone = (EvaluationLink)super.clone();
		newClone.setName(this.name);
		newClone.setEvaluation(this.evaluation);
		newClone.setTargetGoal(this.targetGoal);
		return newClone;
	}

	public IElement getTargetGoal() {
		return targetGoal;
	}

	public void setTargetGoal(IElement targetGoal) {
		this.targetGoal = targetGoal;
	}
	
	
	
}
